namespace Crawler
{
	/// <summary>
	/// understands the properties of a container and factory pattern
	/// </summary>
	public interface ICentralFactory
	{
		IUrlStack GetUrlStack();
		IResourcePath GetCachePath();
		IResourcePath GetPath();
		IDownloadStore GetDownloadStore();
		IMapper GetMapper();
		void Add(IDownloadStore downloadStore);
		void Add(IUrlStack urlStack);
		void AddCachePath(IResourcePath path);
		void Add(IResourcePath path);
		void Add(IMapper mapper);
		void Add(string domain);
		string GetDomain();
	}
}